﻿using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

namespace BussinessLogicTecnoPez.Produccion.Compras
{
    [Serializable]
    [DBTable("DETALLEPEDIDOPROVEEDOR")]
    public class ItemDetallePedidoProveedor : EntityBase<ItemDetallePedidoProveedor>
    {
        private Insumo objInsumo;
        private decimal cantidad;
        private decimal precio;
        private decimal cantidadRecibida;

        public ItemDetallePedidoProveedor()
        {
            this.Insumo = null;
            this.Cantidad = 0;
            this.Precio = 0;
            this.CantidadRecibida = 0;
        }

        public ItemDetallePedidoProveedor(Insumo insumo, decimal cantidad, decimal precio,decimal cantidadRecibida)
        {
            this.Insumo = insumo;
            this.Cantidad = cantidad;
            this.Precio = precio;
            this.CantidadRecibida = cantidadRecibida;
        }

        [NotNullValidator(MessageTemplate="Insumo: debe tener algún valor.")]
        [FriendlyName("Insumo",true)]
        [DBField("IDINSUMO",true,false,true,"IDINSUMO")]
        public Insumo Insumo
        {
            get { return objInsumo; }
            set { objInsumo = value; }
        }

        /// <summary>
        /// Utilizada para el manejo de la grilla
        /// </summary>
        [FriendlyName("IdInsumo", false)]
        public int IdInsumo
        {
            get
            {
                if (objInsumo != null)
                    return objInsumo.IdInsumo;
                else
                    return 0;
            }
        }

        [FriendlyName("Cantidad",true)]
        [DBField("CANTIDAD",false,false)]
        public decimal Cantidad
        {
            get { return cantidad; }
            set { cantidad = value; }
        }

        [FriendlyName("Precio",true)]
        [DBField("PRECIO",false,false)]
        public decimal Precio
        {
            get { return precio; }
            set { precio = value; }
        }

        [FriendlyName("Recibido", true)]
        [DBField("CANTIDADRECIBIDA", false, false)]
        public decimal CantidadRecibida
        {
            get { return cantidadRecibida; }
            set { cantidadRecibida = value; }
        }
    }
}
